Fecha de publicación: 28 de mayo de 2025
A menos que se indique lo contrario, los siguientes cambios se aplican a la versión más reciente del canal beta de Chrome para Android, ChromeOS, Linux, macOS y Windows. Obtén más información sobre las funciones que se indican aquí a través de los vínculos proporcionados o en la lista de ChromeStatus.com. Chrome 138 es una versión beta a partir del 28 de mayo de 2025. Puedes descargar la versión más reciente en Google.com para computadoras de escritorio o en Google Play Store para Android.
CSS y IU
Esta versión agrega seis nuevas funciones de CSS y IU.
Palabra clave de tamaño stretch
de CSS
Es una palabra clave para las propiedades de tamaño de CSS (por ejemplo, width
y height
) que permite que los elementos crezcan para llenar exactamente el espacio disponible de su bloque contenedor. Es similar a 100%
, excepto que el tamaño resultante se aplica al cuadro de margen del elemento en lugar del cuadro indicado por box-sizing
. El uso de esta palabra clave permite que el elemento mantenga sus márgenes y, al mismo tiempo, sea lo más grande posible.
Funciones relacionadas con signos de CSS: abs()
, sign()
Las funciones relacionadas con el signo abs()
y sign()
calculan varias funciones relacionadas con el signo de su argumento.
Variable de entorno de CSS para la escala de fuente a nivel del SO
Expone la escala de fuente preferida de un usuario a CSS. Actualmente, no es práctico que una página detecte si el usuario cambió su tamaño de fuente preferido con las preferencias del sistema operativo. Esta variable de entorno de CSS reflejará la escala que eligió el usuario.
sibling-index()
y sibling-count()
de CSS
Las funciones sibling-index()
y sibling-count()
se pueden usar como números enteros en los valores de las propiedades CSS para aplicar diseño a un elemento según su posición entre sus elementos hermanos o la cantidad total de elementos hermanos, respectivamente. Estas funciones se pueden usar directamente como valores enteros, pero lo más interesante es usarlas dentro de expresiones calc()
.
li {
animation-delay: calc(0.1s * sibling-index());
}
Notación funcional del progreso de interpolación: función progress()
de CSS
La notación funcional progress()
es una función matemática que muestra un valor <number>
que representa la posición de un cálculo (el valor de progreso) entre otros dos cálculos (el valor de inicio y el valor de finalización del progreso).
API de Viewport Segments Enumeration
La API de Viewport Segments permite a los desarrolladores adaptar su diseño web para segmentar contenido para dispositivos plegables. Los segmentos del viewport definen la posición y las dimensiones de una región lógicamente separada del viewport. Los segmentos del viewport se crean cuando el viewport se divide por una o más funciones de hardware (como un pliegue o una bisagra entre pantallas separadas) que actúan como un divisor. Los segmentos son las regiones del viewport que el desarrollador puede tratar como lógicamente distintas.
API web
Se agregó compatibilidad con metadatos de orientación de fotogramas de video a WebCodecs.
Se introducen los valores rotation: int
y flip: bool
en varias interfaces relacionadas con el video en WebCodecs para que los desarrolladores puedan trabajar con fuentes de fotogramas que tengan orientación (por ejemplo, cámaras de Android y cierto contenido multimedia). La interfaz VideoFrame
amplía la capacidad de crear VideoFrames con rotación y volteo arbitrarios, así como accesores para esta información en el objeto VideoFrame
. El objeto VideoDecoderConfig
obtiene campos rotation
y flip
que se emiten automáticamente en objetos VideoFrame decodificados. La clase VideoEncoder
obtiene mecanismos para pasar información de rotación y volteo de encode()
a la VideoDecoderConfig
emitida como parte de EncodedVideoChunkMetadata
. Si se llama a encode()
con marcos con diferentes orientaciones, se arrojará una excepción no fatal. El método configure()
se puede usar para restablecer la orientación permitida.
API de Crash Reporting: is_top_level
y visibility_state
Esta función agrega campos de cadena is_top_level
y visibility_state
al cuerpo de la API de informes de fallas que se envía al extremo de informes predeterminado para los informes de fallas.
Escapa <
y >
en los atributos de serialización
Escapa <
y >
en los valores de los atributos en la serialización. Esto mitiga el riesgo de ataques XSS de mutación, que ocurren cuando el valor de un atributo se interpreta como un token de etiqueta de inicio después de serializarse y volver a analizarse.
Política de integridad para secuencias de comandos
La integridad de subrecursos (SRI) permite a los desarrolladores asegurarse de que los recursos que desean cargar sean realmente los que están cargando. Sin embargo, actualmente, los desarrolladores no tienen la forma de asegurarse de que todas sus secuencias de comandos se validen con SRI.
El encabezado Integrity-Policy
les brinda a los desarrolladores la capacidad de afirmar que cada recurso de un tipo determinado debe verificarse la integridad. Si se intenta cargar un recurso de ese tipo sin metadatos de integridad, el intento fallará y se activará un informe de incumplimiento.
Cuota de almacenamiento informada predecible
Informa una cuota de almacenamiento predecible desde la API de Estimate de StorageManager para los sitios que no tienen permisos de almacenamiento ilimitados. Es posible detectar el modo de navegación de un usuario con la cuota de almacenamiento informada, ya que el espacio de almacenamiento disponible es mucho menor en el modo Incógnito que en el modo normal.
Esta es una mitigación que evita la detección del modo de navegación de un usuario con la API de almacenamiento, ya que informa una cuota artificial, igual al uso + min(10 GiB, disco redondeado al 1 GiB más cercano), en todos los modos de navegación de sitios con permisos de almacenamiento limitados. Los sitios con permisos de almacenamiento ilimitado no se verán afectados. La cuota forzosa tampoco se verá afectada.
Evento pushsubscriptionchange
cuando se vuelve a suscribir
Activa el evento pushsubscriptionchange
en los trabajadores del servicio cuando se vuelva a otorgar el permiso de notificación a un origen para el que existía una suscripción push en el pasado, pero que se revocó debido a un cambio de permiso (de otorgado a denegado o predeterminado). El evento se activará con un oldSubscription
y un newSubscription
vacíos.
Reglas de especulación: Se agregaron prefetchCache
y prerenderCache
al encabezado Clear-Site-Data
.
Se agregaron dos valores nuevos para el encabezado Clear-Site-Data
para ayudar a los desarrolladores a orientarse a borrar la caché de prerenderización y de prefetch: prefetchCache
y prerenderCache
.
Se pueden enviar en cualquier solicitud y no es necesario que se realicen en la solicitud de documentos (por ejemplo, se pueden mostrar en las respuestas de las llamadas a la API de agregar al carrito o de acceso y salida para borrar las especulaciones sobre el cambio de estado).
Reglas de especulación: campo target_hint
Esto extiende la sintaxis de las reglas de especulación para permitir que los desarrolladores especifiquen el campo target_hint
. Este campo proporciona una sugerencia para indicar un destino navegable en el que se activará una página renderizada previamente. Cuando se especifica _blank
como una sugerencia, se puede activar una página renderizada previamente para un elemento navegable que abre window.open()
. El campo no es compatible con la precarga.
Política estricta del mismo origen para la API de Storage Access
Ajusta la semántica de la API de Storage Access para seguir estrictamente la política del mismo origen en relación con la seguridad. Es decir, usar document.requestStorageAccess()
en un marco solo adjunta cookies a las solicitudes al origen del iframe (no al sitio) de forma predeterminada.
API de Summarizer
Una API de JavaScript para producir resúmenes del texto de entrada, respaldados por un modelo de lenguaje de IA. Se espera que los navegadores y los sistemas operativos accedan cada vez más a un modelo de lenguaje. Cuando exponemos este modelo integrado, evitamos que cada sitio web necesite descargar su propio modelo de lenguaje de varios gigabytes o enviar texto de entrada a APIs de terceros. En particular, la API del resumidor expone una API de alto nivel para interactuar con un modelo de lenguaje con el fin de resumir entradas para una variedad de casos de uso de una manera que no dependa del modelo de lenguaje específico en cuestión. Hay una política empresarial (GenAILocalFoundationalModelSettings
) disponible para inhabilitar la descarga de modelos subyacentes, lo que haría que esta API no esté disponible.
Obtén más información en Genera resúmenes concisos con la IA integrada.
API de Language Detector
Una API de JavaScript para detectar qué idioma se usa en un texto determinado, con niveles de confianza Este es un complemento importante de la traducción, ya que es la detección de idioma y se puede usar en combinación con la API de Translator. Por ejemplo, toma la entrada del usuario en un idioma desconocido, determina su idioma y, luego, transcríbelo a un idioma de destino específico. Si bien los navegadores suelen tener capacidades de detección de idioma, esto ofrece la misma potencia a los desarrolladores web con una API de JavaScript, lo que complementa la API de traducción.
Hay disponible una política empresarial (GenAILocalFoundationalModelSettings
) para inhabilitar la descarga del modelo subyacente, lo que haría que esta API no esté disponible.
Obtén más información en Cómo detectar qué idioma se usa con la IA integrada.
API de Translator
Una API de JavaScript para proporcionar capacidades de traducción de idiomas a las páginas web.
Si bien los navegadores ofrecen cada vez más traducciones de idiomas a sus usuarios, estas funciones de traducción también pueden ser útiles para los desarrolladores web. Esto es así, en especial, cuando las funciones de traducción integradas del navegador no pueden ayudar, como en el caso de los servicios interactivos y en vivo. Hay disponible una política empresarial (GenAILocalFoundationalModelSettings
) para inhabilitar la descarga del modelo subyacente, lo que haría que esta API no esté disponible.
Obtén más información en Traducción con IA integrada.
Extensiones de alcance de la app web
Agrega un campo de manifiesto de app web "scope_extensions"
que permite que las apps web extiendan su alcance a otros orígenes. Esto permite que los sitios que controlan varios subdominios y dominios de nivel superior se presenten como una sola app web. Se requiere que los orígenes enumerados confirmen la asociación con la app web mediante un archivo de configuración .well-known/web-app-origin-association
.
Web Serial por Bluetooth en Android
Esta función permite que las páginas web y las apps web se conecten a puertos en serie a través de Bluetooth en dispositivos Android. Chrome para Android ahora admite la API de Web Serial a través de Bluetooth RFCOMM. Las políticas empresariales existentes (DefaultSerialGuardSetting
, SerialAllowAllPortsForUrls
, SerialAllowUsbDevicesForUrls
, SerialAskForUrls
y SerialBlockedForUrls
) en otras plataformas están habilitadas en los estados future_on para Android. Todas las políticas, excepto SerialAllowUsbDevicesForUrls
, se habilitarán después de que se habilite la función. SerialAllowUsbDevicesForUrls
se habilitará en un lanzamiento futuro después de que Android proporcione compatibilidad a nivel del sistema con puertos serie con cable.
Bajas y eliminaciones
Esta versión de Chrome presenta las siguientes bajas y eliminaciones. Visita ChromeStatus.com para ver las listas de bajas planificadas, las bajas actuales y las eliminaciones anteriores.
Esta versión de Chrome da de baja dos funciones.
Se dio de baja la eliminación asíncrona de rangos para las extensiones de fuentes de contenido multimedia
Hace mucho tiempo que el estándar de Media Source cambió para no permitir un comportamiento definido de forma ambigua que involucre eliminaciones de rango asíncronas:
SourceBuffer.abort()
ya no aborta las operacionesSourceBuffer.remove()
.- La configuración de
MediaSource.duration
ya no puede truncar el contenido multimedia almacenado en búfer.
Ahora se arrojarán excepciones en ambos casos.
Se quitó el resguardo de SwiftShader
Ya no se permite el resguardo automático a WebGL con la compatibilidad del renderizador de software SwiftShader, y la creación de contexto de WebGL fallará en lugar de recurrir a SwiftShader. Esto se hizo por dos motivos principales:
- SwiftShader es un riesgo de seguridad alto debido al código JIT que se ejecuta en el proceso de la GPU de Chromium.
- Los usuarios tienen una experiencia deficiente cuando se cambia de un WebGL de alto rendimiento con GPU a una implementación con CPU. Los usuarios no tienen control sobre este comportamiento y es difícil describirlo en los informes de errores.
Durante el período de baja, aparecerá una advertencia en la consola de las Herramientas para desarrolladores de Chrome cuando se cree un contexto de WebGL y se le haga una copia de seguridad con SwiftShader. Si pasas --enable-unsafe-swiftshader
, se quitará este mensaje de advertencia.